-- wrappers
CREATE WRAPPER INFORMIX;
CREATE WRAPPER DRDA;

-- server de informix
/*chequear si nodo y dbname esta bien configurado -- chequear version si esta bien la que puse*/
CREATE SERVER ifxserver TYPE INFORMIX
   VERSION 11.70 
   WRAPPER INFORMIX
   OPTIONS(
      ADD node 'demo_on',
      dbname 'sabd_dbs',  
        IUD_APP_SVPT_ENFORCE  'Y',
        PASSWORD 'Y', 
        PUSHDOWN 'Y',  
        FOLD_ID 'L',  FOLD_PW 'L');

/* segun las diapos, con USER tendria que andar con el usuario logueado*/
CREATE USER MAPPING FOR USER
   SERVER ifxserver 
   OPTIONS(
      ADD remote_authid 'sa505101',
      ADD remote_password 'sabd2010'
   ); 
/*validacion para ver si nos conectamos*/
SET PASSTHRU ifxserver;
SELECT count(*) FROM informix.systables;
SET PASSTHRU RESET;


-- server DB2
/*chequear si nodo y dbname esta bien configurado -- chequear version si esta bien la que puse*/
CREATE SERVER db2express TYPE DB2/UDB VERSION 9.7
   WRAPPER DRDA
   AUTHORIZATION "sa505101"
   PASSWORD "sabd2010"
   OPTIONS(
   		ADD node 'db2inst1',
   		ADD dbname 'sabd_dbs',
      FOLD_ID 'L',  FOLD_PW 'L' );

/*validacion para ver si nos conectamos*/
SET PASSTHRU db2express;
SELECT count(*) FROM sysibm.systables;
SET PASSTHRU RESET;

/*
http://etutorials.org/Misc/advanced+dba+certification+guide+and+reference/Chapter+7.+Federated+Database+Access/Configuration+of+a+Federated+Database+System/
query para chequear y saber node-dbname
select substr(servername,1,8) as servername, substr(setting,1,18) as setting,
    substr(option,1,18) as option from syscat.serveroptions
*/   


--- NICKNAMES
/* revisar esquemas */
-- informix
CREATE NICKNAME if_asiento FOR "ifxserver"."informix"."asiento";
CREATE NICKNAME if_tipo_de_cliente FOR "ifxserver"."informix"."tipo_de_cliente";
CREATE NICKNAME if_tramo FOR "ifxserver"."informix"."tramo";
CREATE NICKNAME if_tipo_de_micro FOR "ifxserver"."informix"."tipo_de_micro";
CREATE NICKNAME if_cliente FOR "ifxserver"."informix"."cliente";
CREATE NICKNAME if_pasaje FOR "ifxserver"."informix"."pasaje";
CREATE NICKNAME if_micro FOR "ifxserver"."informix"."micro";
CREATE NICKNAME if_parada FOR "ifxserver"."informix"."parada";
CREATE NICKNAME if_ciudad FOR "ifxserver"."informix"."ciudad";
CREATE NICKNAME if_provincia FOR "ifxserver"."informix"."provincia";
CREATE NICKNAME if_categoria_de_micro FOR "ifxserver"."informix"."categoria_de_micro";
CREATE NICKNAME if_ruta FOR "ifxserver"."informix"."ruta";
CREATE NICKNAME if_chofer FOR "ifxserver"."informix"."chofer";
CREATE NICKNAME if_tipo_de_camino FOR "ifxserver"."informix"."tipo_de_camino";
CREATE NICKNAME if_tramo_de_ruta FOR "ifxserver"."informix"."tramo_de_ruta";
CREATE NICKNAME if_descuento  FOR "ifxserver"."informix"."descuento";
CREATE NICKNAME if_servicio  FOR "ifxserver"."informix"."servicio";

-- db2
CREATE NICKNAME db_asiento FOR "db2express"."esquema"."asiento";
CREATE NICKNAME db_tipo_de_cliente FOR "db2express"."esquema"."tipo_de_cliente";
CREATE NICKNAME db_tramo FOR "db2express"."esquema"."tramo";
CREATE NICKNAME db_tipo_de_micro FOR "db2express"."esquema"."tipo_de_micro";
CREATE NICKNAME db_cliente FOR "db2express"."esquema"."cliente";
CREATE NICKNAME db_pasaje FOR "db2express"."esquema"."pasaje";
CREATE NICKNAME db_micro FOR "db2express"."esquema"."micro";
CREATE NICKNAME db_parada FOR "db2express"."esquema"."parada";
CREATE NICKNAME db_ciudad FOR "db2express"."esquema"."ciudad";
CREATE NICKNAME db_provincia FOR "db2express"."esquema"."provincia";
CREATE NICKNAME db_categoria_de_micro FOR "db2express"."esquema"."categoria_de_micro";
CREATE NICKNAME db_ruta FOR "db2express"."esquema"."ruta";
CREATE NICKNAME db_chofer FOR "db2express"."esquema"."chofer";
CREATE NICKNAME db_tipo_de_camino FOR "db2express"."esquema"."tipo_de_camino";
CREATE NICKNAME db_tramo_de_ruta FOR "db2express"."esquema"."tramo_de_ruta";
CREATE NICKNAME db_descuento  FOR "db2express"."esquema"."descuento";
CREATE NICKNAME db_servicio  FOR "db2express"."esquema"."servicio";




/* mapeo de la funcion */ 
CREATE FUNCTION MAPPING AsientoLibre FOR AsientoLibre 
SERVER ifxserver;
CREATE FUNCTION MAPPING P_HorasTrabajadasChofer FOR P_HorasTrabajadasChofer 
SERVER ifxserver;




/**
Por si queremos algunos drops

DROP NICKNAME if_asiento;
DROP NICKNAME if_tipo_de_cliente;
DROP NICKNAME if_tramo;
DROP NICKNAME if_tipo_de_micro;
DROP NICKNAME if_cliente;
DROP NICKNAME if_pasaje;
DROP NICKNAME if_micro;
DROP NICKNAME if_parada;
DROP NICKNAME if_ciudad;
DROP NICKNAME if_provincia;
DROP NICKNAME if_categoria_de_micro;
DROP NICKNAME if_ruta;
DROP NICKNAME if_chofer;
DROP NICKNAME if_tipo_de_camino;
DROP NICKNAME if_tramo_de_ruta;
DROP NICKNAME if_descuento; 
DROP NICKNAME if_servicio; 

DROP NICKNAME db_asiento;
DROP NICKNAME db_tipo_de_cliente;
DROP NICKNAME db_tramo;
DROP NICKNAME db_tipo_de_micro;
DROP NICKNAME db_cliente;
DROP NICKNAME db_pasaje;
DROP NICKNAME db_micro;
DROP NICKNAME db_parada;
DROP NICKNAME db_ciudad;
DROP NICKNAME db_provincia;
DROP NICKNAME db_categoria_de_micro;
DROP NICKNAME db_ruta;
DROP NICKNAME db_chofer;
DROP NICKNAME db_tipo_de_camino;
DROP NICKNAME db_tramo_de_ruta;
DROP NICKNAME db_descuento; 
DROP NICKNAME db_servicio; 

**/

